package com.wzp.server;

/**
 * 统计N以内的素数
 * 素数：只能被1和自身整除的数，0、1除外
 * 解法一：暴力算法
 * 直接从2开始遍历，判断是否能被2到自身之间的数整除
 *
 * @author zhengpeng.wang
 */
public class PrimeNumberCounter {
    public static void main(String[] args) {

    }

    public static int countPrimes1(int n) {
        int count = 0;
        for (int i = 2; i < n; i++) {
            count += isPrime1(i) ? 1 : 0;
        }
        return count;
    }

    private static boolean isPrime1(int x) {
        for (int i = 2; i < x; i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }


    public static int countPrimes(int n) {
        int ans = 0;
        for (int i = 2; i < n; i++) {
            ans += isPrime(i) ? 1 : 0;
        }
        return ans;
    }

    private static boolean isPrime(int x) {
        for (int i = 2; i < x; i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }

}
